// 用变量的作用域来实现封装特性，模拟出 public 和 private 两种封装性。
// 除了 let 之外，一般通过函数创建作用域

// 1. 数据封装
var myObject = (function() {
    // 私有 private 变量
    var __name = 'sven';

    // 公开 public 方法
    return {
        getName: function () {
            return __name;
        }
    }
})();

console.log(myObject.getName());  // sven
console.log(myObject.__name);     // undefined

